Virtualization is a technology that allows one computer to do the job of multiple computers by sharing resources of a single computer across multiple systems. Through the use of virtualization, multiple operating systems and applications can run on the same computer at the same time, thereby increasing utilization and flexibility of hardware. Virtualization allows servers to be decoupled from underlying hardware, thus resulting in multiple virtual machines sharing the same physical server hardware. The virtual machines may move between servers based on traffic patterns, hardware resources, or other criteria. The speed and capacity of today's servers allow for a large number of virtual machines on each server, and in large data centers there may also be a large number of servers.
As switching systems evolve for large data centers, multiple switch solutions have become dominate for use in switching traffic in the data center. In conventional systems, when virtual machines move between servers, traffic may not be optimally forwarded by the switches. This suboptimal forwarding results in delay and increases to switching bandwidth consumption due to the extra hops required to forward the packets.
Corresponding reference characters indicate corresponding parts throughout the several views of the drawings.